package com.c2b.algorithm.leetcode.base;

/**
 * <a href="https://leetcode.cn/problems/length-of-last-word/description/?envType=study-plan-v2&envId=top-interview-150">最后一个单词的长度(Length of Last Word)</a>
 * <p>给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。</p>
 * <p>单词是指仅由字母组成、不包含任何空格字符的最大子字符串。</p>
 * <p>
 * <b>示例：</b>
 * <pre>
 * 示例 1：
 *      输入：s = "Hello World"
 *      输出：5
 *      解释：最后一个单词是“World”，长度为5。
 *
 * 示例 2：
 *      输入：s = "   fly me   to   the moon  "
 *      输出：4
 *      解释：最后一个单词是“moon”，长度为4。
 *
 * 示例 3：
 *      输入：s = "luffy is still joyboy"
 *      输出：6
 *      解释：最后一个单词是长度为6的“joyboy”。
 *     </pre>
 * </p>
 *
 * @author c2b
 * @since 2022/5/19 11:52
 */
public class LC0058LengthOfLastWord_S {

    /**
     * 最后一个单词的长度
     *
     * @param s 字符串
     * @return int 最后一个单词的长度
     * @author c2b
     * @since 2022/5/19 11:56
     */
    public int lengthOfLastWord(String s) {
        int ret = 0;
        char[] chars = s.toCharArray();
        for (int i = chars.length - 1; i >= 0; i--) {
            if (chars[i] == ' ') {
                // 如果当前是' '，但已经出现过单词了。直接返回
                if (ret > 0) {
                    return ret;
                }
            } else {
                // 如果是字母
                ret++;
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        System.out.println(new LC0058LengthOfLastWord_S().lengthOfLastWord("   "));
    }
}
